Typical television broadcasts do not allow personalization of television content to an end user's profile. The standard television broadcast provides only one variant of every channel. The channel is selected by the viewer and the STB (set top box) selects the video and audio for that channel from the broadcast material. While this system allows the viewer to select their favorite channel or show from the available set, the individual viewer will be watching exactly the same content as everyone else that selects that channel.
Due to the fact that channels are created to attract a wide range of viewers, viewers typically have different preferred channels. Disadvantageously, this is particularly evident when a program being broadcast on a channel is interrupted by a commercial advertisement that does not appeal to the interests of the viewer. The inevitable result is that the viewer will switch to another channel to avoid watching that particular commercial advertisement. It would be advantageous to personalize channels to be viewed by a viewer tailored to their particular interests and personal situations, including personalized ads or messages which make such ads more relevant to the viewer.
A method of creating personalized messages is disclosed in co-pending U.S. patent application Ser. No. 09/545,015 filed on Apr. 7, 2000, which is incorporated herein by reference. Personalized versions of advertisements or entire programs can be created on a group or individual level. One technique which can assist in the process of assembling personalized messages is the ability to switch rapidly between multiple data streams (such as audio and/or video feeds), in order to assemble the message in real time, possibly as the message is being viewed by the end user.
However, switching between multiple data streams is problematic. One problem is that switching may not be instantaneous. With present technology, it is difficult to switch from one high-bandwidth data stream to another without missing some data during the time the switch is switching. This is true no matter what the type of data stream is, including analog signals, digitized signals, digital data, multiplexed digital data etc., or the type of switch, whether electromechanical, solid state, analog or digital demultiplexer, or a software switch. Also, timing the switch point to minimize data interruption is very difficult. The act of switching typically results in a switch gap, a period of no data during the interim while the switch is switching between data streams. For multimedia (such as television) signals, switching introduces audible and visible artifacts in the sound and picture.
An example of this switching problem also occurs with MPEG-2 encoding. MPEG-2 defines a broadcast quality standard for multimedia signals, based on digital technology. The MPEG-2 standard includes the capability for compressing, coding and transmitting high-quality multi-channel, multimedia signals over broadband networks. MPEG-2 defines standards for program streams and transport streams. The program stream provides video, audio and data elements that have a common time base. The transport stream combines several programs into a single stream, wherein the programs may not have a common time base. MPEG-2 encodes media signals as frames, and switching between MPEG-2 encoded transport streams requires frame-accurate switching to avoid switching artifacts.
FIG. 1 shows switching and decoding components of an example digital television receiver 20. The transport stream 48 carrying multiple encoded data streams enters the demux (demultiplexer) 32. This demux 32 serves as the switch, by selecting which data stream in the multiplexed transport stream to pass on. The selected data stream includes both a video stream and an audio stream. These streams are then decoded respectively by a video decoder 42 and an audio decoder 44. The video decoder 42 and audio decoder provide buffering on these input streams. The results of the decoding are a stream of video frames 40 and audio samples 38, which can then be sent to display and audio equipment. The decoder is controlled by a receiver controller 46, which typically uses a microprocessor and software.
Normally, when switching between different video 40 and audio tracks 38 within the Transport Stream 48, the receiver controller 46 first mutes/blanks the affected decoder, (as shown by arrows 43 and 45, then switches the Demux 32 settings and then unmutes/unblanks the decoder(s). This will present a moment of silence/black to the viewer. It will never be a seamless switch for the viewer.
In an attempt to get a seamless switch, the mute/unmute sequence may be skipped. Now, however, the results depend on the exact moment of the switch with respect to the incoming data from the transport stream. Digital compression and transmission creates interdependencies between groups of video frames because of encoding and packaging and groups of audio samples because of packaging. Only at certain points within the data stream of the transport stream is it safe (W.R.T. visible and audible artifacts) to switch out of the current stream or into another stream. The requirement of exactly hitting a combination of safe exit and safe entry point make the seamless switch very difficult. In addition to this, the decoders 42, 44 are typically the only devices in the receiver 20 that can detect the right moment, while the demux 32 is the device that must be switched. Because of extensive data buffering between the demux and the decoders, detection by the decoder is of no use to determine the right moment to switch the demux.
It may be possible to add a detection device to the demux that would duplicate part of the task of the decoder with a defined timing relation to the transport stream data. This would allow detection of safe exit points. However, this solution requires extra hardware, and thus is incompatible with all existing receivers.
Because of the way that digital television receivers are constructed, the switching mechanism that allows the selection of video and audio streams from the transport stream is located before the playback buffering. And because the data is transmitted in burst-mode, there is no way to know the fill level of the buffer without detailed knowledge of the incoming transport stream, and the current playback time of the receiver.
One solution would be to build new receivers with specialized hardware and software (including buffering at several locations in the receiver) to support such switching. However, this solution increases the cost and complexity of receivers, and can not take advantage of the existing receivers on the market.